package cn.cdeden.resource.api;

import cn.cdeden.common.oss.enumd.OssModuleType;

import java.util.Collection;

/**
 * @ProjectName : KnowCore
 * @Package : cn.cdeden.resource.api
 * @ClassName : RemoteRecentlyViewedService
 * @Author : Yu.
 * @Description : // 删除 文件记录删除
 * @Date : 2025/1/9 13:56
 * @Version : 1.0
 */
public interface RemoteRecentlyFileDeleteService {


    /**
     *  删除文件的预览记录 全部用户
     * @param moduleId
     * @param type
     */
    void deleteViewedByModuleId(Collection<String> moduleId, OssModuleType type);

    /**
     * 删除文件的预览记录 指定用户
     *
     * @param moduleId
     * @param type
     * @param userIds 如果为空 者直接删除全部的记录   不为空 者删除指定用户的记录
     */
    void deleteViewedByModuleId(Collection<String> moduleId, OssModuleType type,Collection<String> userIds);



    /**
     * 删除文件的下载记录 全部用户
     *
     * @param moduleId
     * @param type
     */
    void deleteDownloadByModuleId(Collection<String> moduleId, OssModuleType type);



    /**
     * 删除文件的下载记录 指定用户
     *
     * @param moduleId
     * @param type
     * @param userIds 如果为空 者直接删除全部的记录   不为空 者删除指定用户的记录
     */
    void deleteDownloadByModuleId(Collection<String> moduleId, OssModuleType type,Collection<String> userIds);




    /**
     * 删除文件的预览记录 和 下载记录  全部用户
     *
     * @param moduleId
     * @param type
     */
    void deleteByModuleId(Collection<String> moduleId, OssModuleType type);

    /**
     * 删除文件的预览记录 和 下载记录  指定用户
     *
     * @param moduleId
     * @param type
     * @param userIds 如果为空 者直接删除全部的记录   不为空 者删除指定用户的记录
     */
    void deleteByModuleId(Collection<String> moduleId, OssModuleType type,Collection<String> userIds);




}
